import math
import os  # 导入系统功能模块OS
import pandas as pd

def printData(data:pd.core.frame.DataFrame)->None:
    print("当前pandas.core.frame.DataFrame对象如下")
    # print(data)
    for i in range(data.shape[0]):
        for j in range(data.shape[1]):
            print(type(data.iat[i, j]), end="  ")
        print()
        for j in range(data.shape[1]):
            print(data.iat[i, j], end="  ")
        print()

def fill(excelFile):
    # 步骤1：使用pandas中read_excel(), DataFrame数据类型
    data = pd.read_excel(excelFile, sheet_name='Sheet1', skiprows=1)
    # 序号 学号 姓名 学号	班级	课题名称	指导教师	组别	答辩秘书
    print("type for data is :   ",type(data))
    print(data.info())
    printData(data)
    # 行数，列数，行数
    print(data.shape[0], data.shape[1], len(data))
    for i in range(data.shape[0]):
        for j in range(data.shape[1]):
            if isinstance(data.iat[i, j], str):
                if len(data.iat[i, j]) == 0:
                    data.iat[i, j]= data.iat[i - 1, j]
            else:
                if math.isnan(data.iat[i, j]):
                    data.iat[i, j] = data.iat[i - 1, j]
        for j in range(data.shape[1]):
            print(data.iat[i, j], end=' ')
        print()
    printData(data)
    print(data["组别"].value_counts())
    data.to_excel(os.getcwd() + r'\data\实验3办公自动化\2022届毕业设计第一次答辩分组OK.xlsx', sheet_name='Sheet1')


def grouping(excelFile):
    # 步骤1：使用pandas中read_csv(), DataFrame数据类型
    data = pd.read_excel(excelFile, sheet_name='Sheet1')
    print(data)
    # 序号 学号 姓名 学号	班级	课题名称	指导教师	组别	答辩秘书
    group = set()
    for i in data["组别"]:
        group.add(i)
    for i in group:
        data1 = data[data["组别"] == i]
        dest = os.getcwd() + r'\data' + '\\' + str(i) + '.xlsx'
        print(dest)
        data1.to_excel(dest, sheet_name='Sheet1')


if __name__ == "__main__":
    excelFile = os.getcwd() + r'\data\实验3办公自动化\2022届毕业设计第一次答辩分组.xlsx'
    fill(excelFile)
    excelFile = os.getcwd() + r'\data\实验3办公自动化\2022届毕业设计第一次答辩分组OK.xlsx'
    grouping(excelFile)